<?php

namespace Rebecca\RebeccaBundle\Component;

require_once "ComponentBase.php";

/**
 * Description of TestComponent
 *
 * @author JeyDotC
 */
class PeriodosEnConceptosComponent extends ComponentBase {

    function massiveSave($conceptos, $idPeriodo) {
        /* @var $periodo \Rebecca\RebeccaBundle\Entity\Periodos */
        $periodo = $this->em->getRepository("RebeccaBundle:Periodos")->find($idPeriodo);

        if ($conceptos != NULL)
            foreach ($conceptos as $idConcepto) {
                $concepto = $this->em->getRepository("RebeccaBundle:Conceptos")->find($idConcepto);
                $periodoEnConcepto = new \Rebecca\RebeccaBundle\Entity\PeriodosEnConceptos();
                $periodoEnConcepto->setIdConcepto($concepto);
                $periodoEnConcepto->setIdPeriodo($periodo);

                $this->save($periodoEnConcepto);
                $this->commit();
            }
    }

    function getConceptos($idPeriodo) {
        $periodosEnConceptos = $this->em->getRepository("RebeccaBundle:PeriodosEnConceptos")->findBy(
                array("idPeriodo" => $idPeriodo));

        $conceptos = $this->em->getRepository("RebeccaBundle:Conceptos")->findAll();
        $rta = array();

        foreach ($conceptos as $item /* @var $item \Rebecca\RebeccaBundle\Entity\Conceptos */) {
            $next = TRUE;
            if ($periodosEnConceptos != NULL)
                foreach ($periodosEnConceptos as $value /* @var $value \Rebecca\RebeccaBundle\Entity\PeriodosEnConceptos */) {
                    $next = $next && !($item->getId() == $value->getIdConcepto()->getId());
                }
                
            if ($next)
                array_push($rta, $item);
        }
        return $rta;
    }

}

?>